#ifndef LAURIN_MONITOR_DEVICE_H_
#define LAURIN_MONITOR_DEVICE_H_

#include "laurin-device.h"
#include "laurin-capture-interface.h"
#include <glibmm/ustring.h>

class LaurinMonitorDevice : public LaurinDevice, public LaurinCaptureInterface
{
	public:

		LaurinMonitorDevice(const Glib::ustring& ifaceName, LaurinDevice* masterDevice);
		virtual ~LaurinMonitorDevice();

		LaurinDevice* getMasterDevice() const;

		bool isInitialized() const;


	protected:

		virtual bool setCaptureOptions();

	private:

		LaurinDevice* _masterDevice;
		bool _ready;

		bool createMonitorDevice();
		void removeMonitorDevice();
		bool netlinkSendOperation(short op);
};

#endif
